<script>
  import config from './config'
  import { getToken, setToken, checkStorageStatus, initPlusStorage } from '@/utils/auth'

  export default {
    onLaunch: function() {
      console.log('应用启动 - 开始初始化流程')
      this.initApp()
    },
    onShow: function() {
      // 应用从后台恢复时检查存储状态
      console.log('应用显示 - 检查存储状态')
      const storageStatus = checkStorageStatus()
      console.log('应用显示时存储状态:', storageStatus)
    },
    methods: {
      // 初始化应用
      initApp() {
        try {
          // 初始化应用配置
          this.initConfig()
          
          // 确保plus.storage已初始化
          initPlusStorage()
          
          // 调试：检查存储状态
          console.log('应用启动，检查存储状态...')
          const storageStatus = checkStorageStatus()
          console.log('存储状态检查结果:', storageStatus)
          
          // 检查用户登录状态 - 所有平台都检查
          this.checkLogin()
          
          console.log('应用初始化完成')
        } catch (error) {
          console.error('应用初始化失败:', error)
          // 即使初始化失败，也尝试检查存储状态
          try {
            const errorStorageStatus = checkStorageStatus()
            console.log('错误状态下存储检查:', errorStorageStatus)
          } catch (err) {
            console.error('存储检查也失败:', err)
          }
        }
      },
      initConfig() {
        this.globalData.config = config
      },
      checkLogin() {
        try {
          console.log('开始登录检查...')
          // 确保plus.storage已初始化
          initPlusStorage()
          
          const token = getToken()
          console.log('登录检查 - Token存在:', !!token)
          console.log('登录检查 - Token值长度:', token ? token.length : 0)
          
          if (!token) {
            console.log('未找到有效Token，跳转到登录页')
            this.$tab.reLaunch('/pages/login') 
          } else {
            console.log('Token有效，继续留在当前页面')
            // Token存在时，刷新存储以确保持久性
            try {
              const refreshResult = setToken(token)
              console.log('Token刷新结果:', refreshResult)
            } catch (refreshError) {
              console.error('Token刷新失败:', refreshError)
            }
          }
        } catch (error) {
          console.error('登录检查失败:', error)
          this.$tab.reLaunch('/pages/login')
        }
      }
    }
  }
</script>

<style lang="scss">
  @import '@/static/scss/index.scss'
</style>
